Method and terminal for displaying edge of rectangular frame

ABSTRACT

A method includes: separately creating a rectangular area R1 and a rectangular area R2 by using the first line segment as one side; determining a vector V1=(V1r,V1g,V1b) of an RGB color space of the rectangular area R1 and a vector V2=(V2r,V2g,V2b) of the RGB color space of the rectangular area R2; converting the vector V1 to a vector a1=(h1,s1,b1) of an HSB color space, and converting the vector V2 to a vector a2=(h2,s2,b2) of the HSB color space; determining a vector a0=(h0,s0,b0) of the first line segment in the HSB color space based on the vector a1 and the vector a2; and converting the vector a0 to a vector V0=(V0r,V0g,V0b) in the RGB color space; and after each edge line segment in the target quadrilateral is processed, displaying the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a National Stage of International Application No. PCT/CN2016/101414, filed on Sep. 30, 2016, which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present invention relates to the field of image processing technologies, and in particular, to a method and a terminal for displaying an edge of a rectangular frame.

BACKGROUND

With continuous development of the science and technology, a growing quantity of devices with cameras are applied to daily lives. However, because a photo captured by a camera is an image obtained by means of projection transformation, an image with a distorted rectangular frame that is captured by the camera needs to be corrected, so that the rectangular frame is still rectangular in the image, and a length-width ratio remains the same as a length-width ratio of a rectangular frame in the real world.

At present, before an image with a rectangular frame is corrected, a fixed color that is set by an application is used to draw a detected border of a quadrilateral. However, because the color is relatively undiversified, and colors of areas at two sides of the border are relatively diversified, in some scenarios, a border color and the colors of the areas at the two sides of the border may all be warm colors or cool colors. Consequently, contrast between the border color and the colors of the areas at the two sides of the border is low. As shown in FIG. 1, it is assumed that a border of an upper edge of a quadrilateral is white (that is, a fixed color that is set by a device is white), and colors of areas at two sides of the border are respectively red and yellow. Because red and yellow are of relatively high brightness and both are “warm” colors, contrast between the color of the upper edge of the quadrilateral and the colors of the surroundings is low.

Therefore, a problem that contrast between a border color and colors of areas at two sides of a border is low is an urgent problem to be resolved at present.

SUMMARY

Embodiments of the present invention provide a method and a terminal for displaying an edge of a rectangular frame, so as to resolve at least a prior-art problem that contrast between a border color and colors of areas at two sides of a border is low.

To achieve the foregoing objective, the following technical solutions are used in the embodiments of the present invention.

According to an aspect, an embodiment of the present invention provides a method for displaying an edge of a rectangular frame. The method includes: obtaining, by a terminal, a red green blue RGB image of a captured target rectangle; detecting, by the terminal, an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; processing, by the terminal, each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating, by the terminal, a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining, by the terminal, a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area converting, by the terminal, the vector V₁ to a vector a₁=(h₁,s₁,b₁) of a hue saturation brightness HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining, by the terminal, a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting, by the terminal, the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the terminal processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.

In this way, when the terminal performs a preview during photographing or corrects a rectangular image in a captured picture, if colors of areas at two sides of a border are both warm colors or cool colors, the terminal can adaptively determine a border color, and generate a border color having better contrast with the colors of the areas at the two sides of the border, thereby improving the contrast between the border color and the colors of the areas at the two sides of the border, and improving user experience.

In a possible design, the separately creating, by the terminal, a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side may specifically include: creating, by the terminal, the rectangular area R₁ and the rectangular area R₂ by using the first line segment as one side, and each of two line segments parallel to and having a same distance to the first line segment as another side.

In a possible design, the determining, by the terminal, a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂ includes: determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂; determining, by the terminal, s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂; and determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.

In a possible design, the determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂ includes: determining, by the terminal, a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂, and the following first preset formula; and determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and the following second preset formula, where the first preset formula includes:

$\left\{ {\begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix},} \right.$ where h_(1c) indicates the complementary color of h₁, and h_(2c) indicates the complementary color of h₂; and the second preset formula includes:

$h_{0} = \left\{ {\begin{matrix} \frac{h_{1c} + h_{2c}}{2} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} < 360} \\ {\frac{h_{1c} + h_{2c}}{2} - 360} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} \geq 360} \end{matrix}.} \right.$

In a possible design, the determining, by the terminal, s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂ includes: determining, by the terminal, the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.

In a possible design, the determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂ includes: determining, by the terminal, whether a difference between b₁ and b₂ is greater than a first preset value T₁, where T₁∈[0,1]; and if the difference between b₁ and b₂ is greater than the first preset value, determining, by the terminal, the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space; or if the difference between b₁ and b₂ is not greater than the first preset value, determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and the following third preset formula, where the third preset formula includes:

$b_{0} = \left\{ {\begin{matrix} {\frac{b_{1} + b_{2}}{2} + T_{2}} & {{{{when}\mspace{20mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} & {{{{when}\mspace{20mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} > 1} \end{matrix},{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq {\frac{T_{1}}{2}.}}}} \right.$

In a possible design, the determining, by the terminal, a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ includes: separately determining, by the terminal, V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the RGB vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4: S1: determining, by the terminal, a histogram H_(ki) of an i channel in an RGB color space of a rectangular area R_(k), where k=1 or 2, and i=r, or g, or b; S2: obtaining, by the terminal, a grayscale G_(ki) having a largest probability in the histogram H_(ki); S3: determining, by the terminal by using G_(ki) as a center with reference to the following fourth preset formula, a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki), where T_(ki) a preset rational number having a value range of 0 to 1; and S4: determining, by the terminal, V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and the following fifth preset formula; and determining, by the terminal, the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on V_(1r), V_(1g), and V_(1b), and determining, by the terminal, the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on V_(2r), V_(2g), and V_(2b), where the fourth preset formula includes:

$S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}$ x ∈ [g_(k 1), g_(k 2)], where G_(ki)−g_(k1)=g_(k2)−G_(ki); and the fifth preset formula includes:

${V_{k\; i} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{k\; i}^{\prime}(x)}\mspace{25mu} x}} \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}},\;{{{where}\mspace{14mu}{H_{ki}^{\prime}(x)}} = \frac{H_{ki}(x)}{S_{ki}}},$ where H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.

In a possible design, the converting, by the terminal, the vector V₁ to a vector a₁=(h₁,s₁,b₁) of an HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space includes: converting, by the terminal, the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and converting the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on the following sixth preset formula, seventh preset formula, and eighth preset formula, where the sixth preset formula includes: b_(k)=max(V_(kr),V_(kg),V_(kb)); the seventh preset formula includes:

$s_{k} = \left\{ {\begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix};} \right.$ and the eighth preset formula includes:

$h_{k} = \left\{ {\begin{matrix} {60\left( {V_{kg} - V_{kb}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60\left( {V_{kb} - V_{kr}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60\left( {V_{kr} - V_{kg}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix},\mspace{20mu}{{{where}\mspace{14mu} k} = {1\mspace{14mu}{or}\mspace{14mu} 2}},} \right.$ max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.

In a possible design, the converting, by the terminal, the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space includes: converting, by the terminal, the vector a₀ to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following ninth preset formula to fourteenth preset formula, where the ninth preset formula includes:

${h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6}},$ where

$\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6$ indicates obtaining a remainder of division of a largest integer less than

$\frac{h_{0}}{60}$ by 6; the tenth preset formula includes:

${f = {\frac{h_{0}}{60} - h_{m}}};$ the eleventh preset formula includes: p=b₀*(1−s₀); the twelfth preset formula includes: q=b₀*(1−ƒ*s₀); the thirteenth preset formula includes: t=b₀*(1−(1−ƒ)*s₀); and the fourteenth preset formula includes:

$\left( {V_{0r},V_{0g},V_{0b}} \right) = \left\{ {\begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix}.} \right.$

In a possible design, the displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space includes: displaying, by the terminal, each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.

In a possible design, the displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space includes: calculating, by the terminal based on a fifteenth preset formula and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and displaying, by the terminal, each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space, where the fifteenth preset formula includes: Δh=|h₁−h₂|.

According to another aspect, an embodiment of the present invention provides a terminal for displaying an edge of a rectangle. The terminal includes a camera module, a processing module, and a display module, where the camera module is configured to obtain a red green blue RGB image of a captured target rectangle; the processing module is configured to detect an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; the processing module is further configured to process each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂; converting the vector V₁ to a vector a₁=(h₁,s₁,b₁) of a hue saturation brightness HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the processing module processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, the display module displays the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.

In a possible design, the processing module is specifically configured to: determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂; determine s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂; and determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.

In a possible design, the processing module is specifically configured to: determine a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂, and the following first preset formula; and determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and the following second preset formula, where the first preset formula includes:

$\left\{ {\begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix},} \right.$ where h_(1c) indicate the complementary color of h₁, and h_(2c) indicates the complementary color of h₂; and the second preset formula includes:

$h_{0} = \left\{ {\begin{matrix} \frac{h_{1c} + h_{2c}}{2} & {{{when}\mspace{14mu}\frac{\;{h_{1c} + h_{2c}}}{2}} < 360} \\ {\frac{h_{1c} + h_{2c}}{2} - 360} & {{{when}\mspace{14mu}\frac{\;{h_{1c} + h_{2c}}}{2}} \geq 360} \end{matrix}.} \right.$

In a possible design, the processing module is specifically configured to determine the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.

In a possible design, the processing module is specifically configured to: determine whether a difference between b₁ and b₂ is greater than a first preset value T₁, where T₁∈[0,1]; and if the difference between b₁ and b₂ is greater than the first preset value, determine the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space; or if the difference between b₁ and b₂ is not greater than the first preset value, determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and the following third preset formula, where the third preset formula includes:

$b_{0} = \left\{ {\begin{matrix} {\frac{b_{1} + b_{2}}{2} + T_{2}} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} > 1} \end{matrix},{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq {\frac{T_{1}}{2}.}}}} \right.$

In a possible design, the processing module is specifically configured to: separately determine V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the RGB vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4: S1: determining a histogram H_(ki) of an i channel in an RGB color space of a rectangular area R_(k), where k=1 or 2, and i=r, or g, or b; S2: obtaining a grayscale G_(ki) having a largest probability in the histogram H_(ki); S3: determining, by using G_(ki) as a center with reference to the following fourth preset formula, a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki), where T_(ki) a preset rational number having a value range of 0 to 1; and S4: determining V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and the following fifth preset; and determine the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on V_(1r), V_(1g), and V_(1b), and determine the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on V_(2r), V_(2g), and V_(2b), where the fourth preset formula includes:

$S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}$ x ∈ [g_(k 1), g_(k 2)], where G_(ki)−g_(k1)=g_(k2)−G_(ki); and the fifth preset formula includes:

${V_{k\; i} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{k\; i}^{\prime}(x)}\mspace{14mu} x}} \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}},{{{where}\mspace{14mu}{H_{ki}^{\prime}(x)}} = \frac{H_{ki}(x)}{S_{ki}}},$ where H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.

In a possible design, the processing module is specifically configured to: convert the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and convert the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on the following sixth preset formula, seventh preset formula, and eighth preset formula, where the sixth preset formula includes: b_(k)=max(V_(kr),V_(kg),V_(kb)); the seventh preset formula includes:

$s_{k} = \left\{ {\begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix};} \right.$ and the eighth preset formula includes:

$h_{k} = \left\{ {\begin{matrix} {60\left( {V_{kg} - V_{kb}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60\left( {V_{kb} - V_{kr}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60\left( {V_{kr} - V_{kg}} \right)\text{/}\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix},\mspace{20mu}{{{where}\mspace{14mu} k} = {1\mspace{14mu}{or}\mspace{14mu} 2}},} \right.$ max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.

In a possible design, the processing module is specifically configured to: convert the vector a₀ to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following ninth preset formula to fourteenth preset formula, where the ninth preset formula includes:

${h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6}},$ where

$\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6$ indicates obtaining a remainder of division of a largest integer less than

$\frac{h_{0}}{60}$ by 6; the tenth preset formula includes:

${f = {\frac{h_{0}}{60} - h_{m}}};$ the eleventh preset formula includes: p=b₀*(1−s₀); the twelfth preset formula includes: q=b₀*(1−ƒ*s₀); the thirteenth preset formula includes: t=b₀*(1−(1−ƒ)*s₀); and the fourteenth preset formula includes:

$\left( {V_{0\; r},V_{0\; g},V_{0\; b}} \right) = \left\{ {\begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix}.} \right.$

In a possible design, the display module is specifically configured to display each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.

In a possible design, the display module is specifically configured to: calculate, by using the processing module based on a fifteenth preset formula and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and display each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space, where the fifteenth preset formula includes: Δh=|h₁−h₂|.

According to still another aspect, an embodiment of the present invention provides a terminal. The terminal can implement a function performed by the processing module in the foregoing method embodiment, and the function may be implemented by hardware or may be implemented by executing corresponding software by hardware. The hardware or software includes one or more modules corresponding to the foregoing function.

According to another aspect, an embodiment of the present invention provides a terminal for displaying an edge of a rectangle. The terminal includes a camera, a processor, and a display screen, where the camera is configured to obtain a red green blue RGB image of a captured target rectangle; the processor is configured to detect an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; the processor is further configured to process each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂; converting the vector V₁ to a vector a₁=(h₁,s₁,b₁) of a hue saturation brightness HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the processor processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, the display screen displays the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.

In a possible design, the processor is specifically configured to: determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂; determine s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂; and determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.

In a possible design, the processor is specifically configured to: determine a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂, and the following first preset formula; and determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and the following second preset formula, where the first preset formula includes:

$\left\{ {\begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix},} \right.$ where h_(1c) indicates the complementary color of h₁, and h_(2c) indicates the complementary color of h₂; and the second preset formula includes:

$h_{0} = \left\{ {\begin{matrix} \frac{h_{1\; c} + h_{2\; c}}{2} & {{{when}\mspace{14mu}\frac{h_{1\; c} + h_{2\; c}}{2}} < 360} \\ {\frac{h_{1\; c} + h_{2\; c}}{2} - 360} & {{{when}\mspace{14mu}\frac{h_{1\; c} + h_{2\; c}}{2}} \geq 360} \end{matrix}.} \right.$

In a possible design, the processor is specifically configured to determine the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.

In a possible design, the processor is specifically configured to: determine whether a difference between b₁ and b₂ is greater than a first preset value T₁, where T₁∈[0,1]; and if the difference between b₁ and b₂ is greater than the first preset value, determine the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space; or if the difference between b₁ and b₂ is not greater than the first preset value, determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and the following third preset formula, where the third preset formula includes:

$b_{0} = \left\{ {\begin{matrix} {\frac{b_{1\;} + b_{2\;}}{2} + T_{2}} & {{{{when}\mspace{14mu}\frac{b_{1\;} + b_{2\;}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1\;} + b_{2\;}}{2} + T_{2} - 1.0} & {{{{when}\mspace{14mu}\frac{b_{1\;} + b_{2\;}}{2}} + T_{2}} > 1} \end{matrix},{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq {\frac{T_{1}}{2}.}}}} \right.$

In a possible design, the processor is specifically configured to: separately determine V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the RGB vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4: S1: determining a histogram H_(ki) an of i channel in an RGB color space of a rectangular area R_(k), where k=1 or 2, and i=r, or g, or b; S2: obtaining a grayscale G_(ki) having a largest probability in the histogram H_(ki); S3: determining, by using G_(ki) as a center with reference to the following fourth preset formula, a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki), where T_(ki) is a preset rational number having a value range of 0 to 1; and S4: determining V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and the following fifth preset formula; and determine the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on V_(1r), V_(1g), and V_(1b), and determine the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on V_(2r), V_(2g), and V_(2b), where the fourth preset formula includes:

$S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}$ x ∈ [g_(k 1), g_(k 2)], where G_(ki)−g_(k1)=g_(k2)−G_(ki); and the fifth preset formula includes:

${{V_{k\; i} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{k\; i}^{\prime}(x)}\mspace{14mu} x}} \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}},{{{where}\mspace{14mu}{H_{ki}^{\prime}(x)}} = \frac{H_{ki}(x)}{S_{ki}}},}\;$ where H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.

In a possible design, the processor is specifically configured to: convert the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and convert the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on the following sixth preset formula, seventh preset formula, and eighth preset formula, where the sixth preset formula includes: b_(k)=max(V_(kr),V_(kg),V_(kb)); the seventh preset formula includes:

$s_{k} = \left\{ {\begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix};} \right.$ and the eighth preset formula includes:

$h_{k} = \left\{ {\begin{matrix} {60{\left( {V_{kg} - V_{kb}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix},\mspace{20mu}{{{where}{\mspace{14mu}\;}k} = {1\mspace{14mu}{or}\mspace{14mu} 2}},} \right.$ max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.

In a possible design, the processor is specifically configured to: convert the vector a to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following ninth preset formula to fourteenth preset formula, where the ninth preset formula includes:

${h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\mspace{14mu} 6}},$ where

$\left\lfloor \frac{h_{0}}{60} \right\rfloor\mspace{11mu}{mod}\mspace{14mu} 6$ indicates obtaining a remainder of division of a largest integer less than

$\frac{h_{0}}{60}$ by 6; the tenth preset formula includes:

${f = {\frac{h_{0}}{60} - h_{m}}};$ the eleventh preset formula includes: p=b₀*(1−s₀); the twelfth preset formula includes: q=b₀*(1−ƒ*s₀); the thirteenth preset formula includes: t=b₀*(1−(1−ƒ)*s₀); and the fourteenth preset formula includes:

$\left( {V_{0\; r},V_{0\; g},V_{0\; b}} \right) = \left\{ {\begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix}.} \right.$

In a possible design, the display screen is specifically configured to display each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.

In a possible design, the display screen is specifically configured to: calculate, by using the processor based on a fifteenth preset formula and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and display each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space, where the fifteenth preset formula includes: Δh=|h₁−h₂|.

In a possible design, the terminal may further include a memory, and the memory is configured to be coupled with the processor, and stores a program instruction and data necessary for the terminal.

According to yet another aspect, an embodiment of the present invention provides a computer storage medium, configured to store a computer software instruction used by the foregoing processor and storing a program designed to perform the foregoing aspects.

According to the method and the terminal for displaying an edge of a rectangular frame provided in the embodiments of the present invention, impact of a first line segment in a border of a rectangle and three channels in an HSB color mode of areas at two sides on contrast of a border color is considered, to resolve a problem that in some scenarios, contrast between a border color of a detected border of a quadrilateral that is drawn by using a fixed color in an existing application and colors of areas at two sides of the border is low, so that a border color having high contrast can be adaptively determined based on an ambient environment.

BRIEF DESCRIPTION OF DRAWINGS

To describe the technical solutions in the embodiments of the present invention more clearly, the following briefly describes the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description show merely some embodiments of the present invention, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.

FIG. 1 is a schematic diagram of a detected edge of a rectangle in a preview interface image according to an embodiment of the present invention;

FIG. 2 is a grayscale histogram according to an embodiment of the present invention;

FIG. 3 is a schematic diagram of an HSB color mode according to an embodiment of the present invention;

FIG. 4 is a schematic diagram of 24-color color circle according to an embodiment of the present invention;

FIG. 5 is a hardware structural diagram of a terminal according to an embodiment of the present invention;

FIG. 6 is a flowchart of a method for displaying an edge of a rectangular frame according to an embodiment of the present invention;

FIG. 7 is a schematic diagram of creating two rectangular areas according to an embodiment of the present invention;

FIG. 8 is a flowchart of another method for displaying an edge of a rectangular frame according to an embodiment of the present invention;

FIG. 9 is a flowchart of another method for displaying an edge of a rectangular frame according to an embodiment of the present invention;

FIG. 10 is a schematic diagram of determining a color of an edge line segment of a rectangular frame according to an embodiment of the present invention; and

FIG. 11 is a possible schematic structural diagram of a terminal according to an embodiment of the present invention.

DESCRIPTION OF EMBODIMENTS

To clearly and briefly describe the following embodiments, brief descriptions of related concepts or technologies are provided first.

1. Gray Scale Histogram

As shown in FIG. 2, a grayscale histogram is a function related to grayscale distribution, and is statistics on grayscale distribution of pixels in an image. In a grayscale histogram, statistics on frequency (probabilities) that all pixels in a digital image appear are collected based on grayscale values.

2. Hue Saturation Brightness HSB (English: Hue Saturation Brightness, HSB for Short)

As shown in FIG. 3, an HSB color mode is a color mode based on human eyes, where H indicates a hue, S indicates saturation, and B indicates brightness.

A hue H is identified by an angular value on a standard color circle of 0° to 360°. For example, red is 0°, green is 120°, and blue is 240°.

Saturation S refers to intensity or purity of a color. Saturation indicates a proportion of a color in a hue, and is measured by using a percentage from 0% (gray) to 100% (complete saturation). On a color facade, saturation progressively increases from the center to an edge, and saturation at the center is 0%, and saturation at the edge is 100%.

Brightness B is luminance of a color and is generally measured by a percentage from 0% (black) to 100% (white), and progressively decreases from the top to the bottom on the color facade. Brightness at an upper edge is 100%, and brightness at a lower edge is 0%.

3. Red Green Blue (English: Red Green Blue, RGB for Short) Color Mode

The RGB color mode is a color standard in the industry, in which channels of three colors: red (R), green (G), and blue (B) are changed and the three color channels are added to each other to obtain a broad array of colors. RGB indicates colors of red, green, and blue channels. This standard includes almost all colors that can be perceived by human vision, and is one of the most widely used color systems at present.

4. 24-Color Color Circle and Complementary Color

As shown in FIG. 4, basic hues in an Ostwald color system are mainly eight hues in total, that is, yellow, orange, red, purple, blue, bluish green, green, and yellowish green. Each basic hue is divided into three parts, to form a color circle divided into 24 parts, which are numbered from 1 to 24. In an RGB palette, in the 24-color color circle, two hues that are different from each other by twelve color numbers or different from each other by 180 degrees are complementary colors of each other. A color group combined by complementary colors is a color group having highest contrast. Visual simulation and instability are generated for a human. Two hues having neighboring color numbers or different from each other by 15 degrees are comparison between similar colors. A hue feeling is pure, soft, unified, and tends to be harmonious.

As described in the Background, at present, before an image with a rectangular frame is corrected, a fixed color that is set by an application is used to draw a detected border of a quadrilateral. However, because the color is relatively undiversified, and colors of areas at two sides of the border are relatively diversified, in some scenarios, a border color and the colors of the areas at the two sides of the border may all be warm colors or cool colors. Consequently, contrast between the border color and the colors of the areas at the two sides of the border is low.

To resolve the problem, embodiments of the present invention provide a method and a terminal for displaying an edge of a rectangular frame. A core idea is that: a terminal obtains an RGB image of a captured target rectangle; the terminal detects an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; the terminal processes each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating, by the terminal, a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining, by the terminal, a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂; converting, by the terminal, the vector V₁ to a vector a₁=(h₁,s₁,b₁) of an HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining, by the terminal, a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting, by the terminal, the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the terminal processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, the terminal displays the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space. In this way, when the terminal performs a preview during photographing or corrects a rectangular image in a captured picture, if colors of areas at two sides of a border are both warm colors or cool colors, the terminal can adaptively determine a border color, and generate a border color having better contrast with the colors of the areas at the two sides of the border, thereby improving the contrast between the border color and the colors of the areas at the two sides of the border, and improving user experience. The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention.

It should be noted that, to facilitate clear description of the technical solutions in the embodiments of the present invention, words such as “first” and “second” are used in the embodiments of the present invention to distinguish between same items or similar items that provide basically same functions or purposes. A person skilled in the art may understand that the words such as “first” and “second” do not limit a quantity and an execution order.

It should be noted that, “/” in this specification means “or”, for example, A/B may indicate A or B. “And/or” in this specification describes only an association relationship for describing associated objects and represents that three relationships may exist. For example, A and/or B may represent the following three cases: Only A exists, both A and B exist, and only B exists. “Plurality of” indicates two or more.

Terms such as “component”, “module”, and “system” used in this application are used to indicate computer-related entities. The computer-related entities may be hardware, firmware, combinations of hardware and software, software, or software being executed. For example, a component may be, but is not limited to, a process that runs on a processor, a processor, an object, an executable file, a thread during execution, a program, and/or a computer. In an example, both an application that runs on a computing device and the computing device may be components. One or more components may reside within a process and/or a thread during execution, and the one or more components may be located on one computer and/or distributed between two or more computers. In addition, these components may be executed from various computer-readable media that have various data structures. The components may communicate based on, for example, a signal having one or more data packets (for example, data from a component, where the component interacts with another component in a local system or a distributed system and/or interacts with another system in a signal manner by using a network such as the Internet) by using a local and/or remote process.

It should be noted that, in the embodiments of the present invention, “by way of example” or “for example” or other terms may be used to indicate examples, illustrations, or descriptions. In the embodiments of the present invention, any embodiment or design solution described by using “by way of example” or described by using “an example” should not be construed as being better or more advantageous than other embodiments or design solutions. Specifically, terms such as “by way of example” or “for example” are used to present related concepts in specific manners.

It should be noted that, in the embodiments of the present invention, unless otherwise stated, “plurality of” means two or more. For example, a plurality of data packets refer to two or more data packets.

It should be noted that, in the embodiments of the present invention, “of (English: of)”, “relevant (English: corresponding, relevant)”, and “corresponding (English: corresponding)” may be mixed during use. It should be noted that, when a difference is de-emphasized, meanings of them are the same.

FIG. 5 is a schematic hardware structural diagram of a terminal according to an embodiment of the present invention. The terminal 500 includes a processor 501, a camera 502, a display 503, a memory 504, and a bus 505. The processor 501, the camera 502, the display 503, and the memory 504 are connected to each other by using the bus 505.

The processor 501 is a control center of the terminal 500, and is connected to various parts of the terminal 500 by using the bus 505. By running or executing a software program and/or module stored in the memory 504, and invoking data stored in the memory 504, the processor 501 performs various functions and data processing of the terminal 500, thereby performing overall monitoring on the terminal 500. Optionally, the processor 501 may include one or more processing units. Preferably, the processor 501 may integrate an application processor and a modem processor. The application processor mainly processes an operating system, a user interface, an application program, and the like. The modem processor mainly processes wireless communication. It may be understood that the foregoing modem processor may be not integrated into the processor 501.

The camera 502 is configured to photograph a target object, to obtain image data of the target object. The camera 502 may be a depth camera or a dual camera. This is not specifically limited in this embodiment of the present invention. Optionally, if the camera 502 is a depth camera, the camera 502 is further configured to obtain depth data of an image.

The display 503 is configured to display a processed image obtained after the target object is photographed.

The memory 504 may be configured to store a software program and module. The processor 501 executes various functional applications and performs data processing of the terminal 500 by running the software program and module stored in the memory 504. The memory 504 mainly includes a program storage area and a data storage area. The program storage area may store an operating system, an application program required by at least one function (such as a photographing function and a document correction function), and the like. The data storage area may store data (such as a preset angle database of rectangular shapes) created based on use of the terminal 500, and the like. In addition, the memory 504 may include a high-speed random access memory, and may also include a non-volatile memory such as at least one disk storage device, a flash memory, or another volatile solid-state storage device.

The bus 505 may be a peripheral component interconnect (English: peripheral component interconnect, PCI for short) bus, an extended industry standard architecture (English: extended industry standard architecture, EISA for short) bus, or the like. The bus may be classified into an address bus, a data bus, a control bus, or the like. For ease of representation, in FIG. 5, the bus is represented by using only one bold line, but it does not indicate that there is only one bus or only one type of bus.

Although not shown, the terminal 500 may further include a radio frequency (English: radio frequency, RF for short) circuit, an audio circuit, a communications interface, and/or a plurality of sensors. This is not specifically limited in this embodiment of the present invention.

A method for displaying an edge of a rectangular frame provided in an embodiment of the present invention is described in detail below based on the terminal shown in FIG. 5. FIG. 6 is a flowchart of a method for displaying an edge of a rectangular frame according to an embodiment of the present invention. The method includes step S601 to step S603.

S601: A terminal obtains an RGB image of a captured target rectangle.

S602: The terminal detects an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle.

S603: The terminal processes each edge line segment in the target quadrilateral based on the following operations on a first line segment in T1 to T6:

T1: The terminal separately creates a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side.

T2: The terminal determines a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂.

T3: The terminal converts the vector V₁ to a vector a₁=(h₁,s₁,b₁) of an HSB color space, and the terminal converts the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space.

T4: The terminal determines a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂.

T5: The terminal converts the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space.

S604: After processing each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, the terminal displays the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.

T1 may specifically include:

creating, by the terminal, the rectangular area R₁ and the rectangular area R₂ by using the first line segment as one side, and each of two line segments parallel to and having a same distance to the first line segment as another side.

For example, as shown in FIG. 7, the terminal may create two rectangular areas that are respectively R₁ and R₂ by using a line segment L₁ as one side, and each of line segments L₁₁ L₁₂ and parallel to and having a distance of d to L₁ as another side.

T2 may specifically include:

separately determining, by the terminal, V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the RGB vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4; and determining, by the terminal, the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on the determined V_(1r), V_(1g), and V_(1b), and determining, by the terminal, the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on the determined V_(2r), V_(2g), and V_(2b).

S1 to S4 include:

S1: The terminal determines a histogram H_(ki) of an i channel in an RGB color space of a rectangular area R_(k), where k=1 or 2, and i=r, or g, or b.

S2: The terminal obtains a grayscale G_(ki) having a largest probability in the histogram H_(ki).

S3: The terminal determines, by using G_(ki) as a center with reference to a formula (1), a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki).

T_(ki) is a preset rational number having a value range of 0 to 1.

$\begin{matrix} {{S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}}{x \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}} & {{formula}\mspace{14mu}(1)} \end{matrix}$ where G_(ki)−g_(k1)=g_(k2)−G_(ki).

S4: The terminal determines V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and a formula (2).

$\begin{matrix} {{V_{ki} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{ki}^{\prime}(x)}x}} \in {\left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack\mspace{14mu}{where}}}}{{{H_{ki}^{\prime}(x)} = \frac{H_{ki}^{\prime}(x)}{S_{ki}}},}} & {{formula}\mspace{14mu}(2)} \end{matrix}$

where H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.

T3 may specifically include:

converting, by the terminal, the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and converting the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on a formula (3), a formula (4), and a formula (5).

$\begin{matrix} {b_{k} = {\max\left( {V_{kr},V_{kg},V_{kb}} \right)}} & {{formula}\mspace{14mu}(3)} \\ {\;{s_{k} = \left\{ \begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix} \right.}} & {{formula}\mspace{14mu}(4)} \\ {h_{k} = \left\{ {{{\begin{matrix} {60{\left( {V_{kg} - V_{kb}} \right)/\left( {b_{k} - {\min\;\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix}{where}{\mspace{14mu}\;}k} = {1\mspace{14mu}{or}\mspace{14mu} 2}},} \right.} & {{formula}\mspace{14mu}(5)} \end{matrix}$ max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.

As shown in FIG. 8, T4 may specifically include step T4 a to step T4 c.

T4 a: The terminal determines h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂.

T4 b: The terminal determines s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂.

T4 c: The terminal determines b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.

In a possible implementation, as shown in FIG. 9, step T4 a specifically includes step T4 a 1 and step T4 a 2:

T4 a 1: The terminal determines a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂, and a formula (6).

$\begin{matrix} \left\{ \begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix} \right. & {{formula}\mspace{14mu}(6)} \end{matrix}$

where h_(1c) indicates the complementary color of h₁, and h_(2c) indicates the complementary color of h₂.

T4 a 2: The terminal determines h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and a formula (7).

$\begin{matrix} {h_{0} = \left\{ \begin{matrix} \frac{h_{1c} + h_{2c}}{2} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} < 360} \\ {\frac{h_{1c} + h_{2c}}{2} - 360} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} \geq 360} \end{matrix} \right.} & {{formula}\mspace{14mu}(7)} \end{matrix}$

The formula (6) is obtained based on a principle that two hues that are in a 24-color color circle and that are different from each other by 180 degrees are complementary colors of each other. Because a hue combined with a complementary color is a hue having highest contrast, and can produce visual simulation for a human, when h₀ is determined by using the foregoing manner, contrast between a border color and colors of areas at two sides of a border can be better improved, and user experience can be improved.

In a possible implementation, as shown in FIG. 9, step T4 b may specifically include step T4 b 1.

T4 b 1: The terminal determines the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.

A larger value of s₀ indicates higher saturation and a brighter color. After h₀ of an H channel is determined, higher saturation is required, so that a color of a division line looks brighter. Therefore, the larger one of s₁ and s₂ is selected as s₀.

In a possible implementation, as shown in FIG. 9, step T4 c may specifically include step T4 c 1 to step T4 c 3.

T4 c 1: The terminal determines whether a difference between b₁ and b₂ is greater than a first preset value T₁, where T₁∈[0,1].

T4 c 2: If the difference between b₁ and b₂ is greater than the first preset value, the terminal determines the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.

When the difference between b₁ and b₂ is greater than the first preset value, it indicates that there is a relatively large difference between brightness of areas at two sides of the division line. Therefore, when a color of the H channel can be used to distinguish between the division line and the areas at the two sides of the division line, a b value may be made as large as possible, to make the color of the division line brighter.

T4 c 3: If the difference between b₁ and b₂ is not greater than the first preset value, the terminal determines b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and a formula (8).

$\begin{matrix} {b_{0} = \left\{ {\begin{matrix} {\frac{b_{1} + b_{2}}{2} + T_{2}} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} > 1} \end{matrix},{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq \frac{T_{1}}{2}}}} \right.} & {{formula}\mspace{14mu}(8)} \end{matrix}$

When the difference between b₁ and b₂ is not greater than the first preset value, it indicates that there is a small difference between brightness of areas at two sides of the division line. Therefore, a b value having a relatively large difference from brightness of both the areas at the two sides is required, to distinguish between the division line and the areas at the two sides of the division line.

Based on the embodiment shown in FIG. 9, when a color contrast problem in the prior art is considered, a complementary color of an H channel related to a color circle is mainly considered, but in this embodiment of the present invention, when the color contrast problem is considered, the complementary color of the H channel and impact of an S channel and a B channel are both considered, and contrast between an edge line segment in a rectangular frame and two areas adjacent to the edge line segment is considered. Therefore, more comprehensive consideration is achieved, so that contrast between a border color and colors of areas at two sides of a border is higher.

T5 may specifically include:

converting, by the terminal, the vector a₀ to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following formula (9) to formula (14).

$\begin{matrix} {h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6}} & {{formula}\mspace{14mu}(9)} \end{matrix}$

where

$\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6$ indicates obtaining a remainder of division of a largest integer less than

$\frac{h_{0}}{60}$ by 6;

$\begin{matrix} {f = {\frac{h_{0}}{60} - h_{m}}} & {{formula}\mspace{14mu}(10)} \\ {p = {b_{0}*\left( {1 - s_{0}} \right)}} & {{formula}\mspace{14mu}(11)} \\ {q = {b_{0}*\left( {1 - {f*s_{0}}} \right)}} & {{formula}\mspace{14mu}(12)} \\ {t = {b_{0}*\left( {1 - {\left( {1 - f} \right)*s_{0}}} \right)}} & {{formula}\mspace{14mu}(13)} \\ {\left( {V_{0r},V_{0g},V_{0b}} \right) = \left\{ \begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix} \right.} & {{formula}\mspace{14mu}(14)} \end{matrix}$

In a possible implementation, step S604 may specifically include:

displaying, by the terminal, each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.

Alternatively, optionally, in a possible implementation, step S604 may specifically include:

calculating, by the terminal based on a formula (15) and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and displaying, by the terminal, each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest value Δh in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space. Δh=|h ₁ −h ₂|  formula (15)

In conclusion, based on the method for displaying an edge of a rectangular frame provided in this embodiment of the present invention, when the terminal performs a preview during photographing or corrects a rectangular image in a captured picture, if colors of areas at two sides of a border are both warm colors or cool colors, the terminal can adaptively determine a border color, and generate a border color having better contrast with the colors of the areas at the two sides of the border, thereby improving the contrast between the border color and the colors of the areas at the two sides of the border, and improving user experience.

For example, as shown in FIG. 10, it is assumed that L₁ is an upper edge line segment in the target quadrilateral corresponding to the target rectangle, the terminal creates two rectangular areas that are respectively R₁₁ and R₁₂ by using L₁₁ as one side, and each of a line segment L₁₁ and a line segment L₁₂ parallel to and having a same distance to L₁ as another side. A color of the area R₁₁ is yellow, a color of the area R₁₂ is red, and it may be learned that, yellow and red are both warm colors. If a border color that is set by a device is a warm color, contrast between the border color and the color of the rectangular area R₁₁ and the color of the rectangular area R₁₂ is low. Therefore, the following processing may be performed on the edge line segment according to the method for displaying an edge of a rectangular frame provided in the foregoing embodiment.

First step: The terminal determines a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₁₂.

Specifically, the terminal may obtain, based on the foregoing formula (1) and formula (2), that the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the area R₁₁ (the yellow area)=(226, 201, 10), and the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the area R₁₂ (the red area)=(216, 67, 7).

Second step: The terminal converts the vector V₁ to a vector a₁=(h₁,s₁,b₁) of an HSB color space, and the terminal converts the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space.

Specifically, it may be obtained, based on the formula (3), the formula (4), and the formula (5), that the vector a₁=(h₁,s₁,b₁) of the HSB color space corresponding to the area R₁₁ (the yellow area)=(53, 0.96, 0.89), and the vector a₂=(h₂,s₂,b₂) of the HSB color space corresponding to the area R₁₂ (the red area)=(17, 0.97, 0.85).

Third step: The terminal determines a vector a₀=(h₀,s₀,b₀) of the line segment L₁ in the HSB color space based on the vector a₁ and the vector a₂.

Specifically, complementary colors h_(1c)=53+180=233 and h_(2c)=17+180=197 may be calculated based on the formula (6), and

$h_{0} = {\frac{h_{1c} + h_{2c}}{2} = {\frac{233 + 197}{2} = 215}}$ is calculated based on the formula (7).

The larger one of s₁ and s₂ is used as s₀ and is 0.97.

When b₀ is calculated, assuming that a threshold T₁ is 0.3 and a threshold T₂ is 0.5,

$b_{0} = {{\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} = {{\frac{0.89 + 0.85}{2} + 0.5 - 1.0} = 0.37}}$ is calculated based on the formula (8).

Fourth step: The terminal converts the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space.

Specifically, it may be calculated, based on the formula (9) to the formula (14), that the line segment L₁ has an RGB value being (3, 41, 94) and corresponds to dark blue in the RGB color space.

A list of vectors of red, yellow, and blue in the RGB color space and vectors of red, yellow, and blue in the HSB color space is shown in Table 1.

TABLE 1 R₁₁ (yellow) R₁₂ (red) L₁ (dark blue) (R, G, B) (226, 201, 10) (216, 67, 7) (3, 41, 94) (H, S, B) (53, 0.96, 0.89) (17, 0.97, 0.85) (215, 0.97, 0.37)

Similarly, as shown in FIG. 10, it is assumed that L₂ is a left edge line segment in the target quadrilateral corresponding to the target rectangle, the terminal creates a rectangular area R₂₁ and a rectangular area R₂₂ by using L₂₁ as one side, and each of a line segment L₂₁ and a line segment L₂₂ parallel to and having a same distance to L₂ as another side. A color of the area R₂₁ is brown, a color of the area R₂₂ is red, and it may be learned that, brown and red are both warm colors. If a border color that is set by a device is also a warm color, contrast between the border color and the color of the rectangular area R₂₁ and the color of the rectangular area R₂₂ may be low. Therefore, similarly, the foregoing processing may be performed on the edge line segment according to the method for displaying an edge of a rectangular frame provided in the foregoing embodiment. For details, refer to a processing manner on the upper edge line segment L₁ in the target quadrilateral, and details are not described again.

A list of vectors of brown, red, and light blue in the RGB color space and vectors of brown, red, and light blue in the HSB color space is shown in Table 2.

TABLE 2 R₂₁ (brown) R₂₂ (red) L₂ (light blue) (R, G, B) (115, 49, 17) (216, 61, 7) (7, 154, 217) (H, S, B) (20, 0.85, 0.45) (16, 0.97, 0.85) (198, 0.97, 0.85)

Similarly, as shown in FIG. 10, it is assumed that L₃ is a lower edge line segment in the target quadrilateral corresponding to the target rectangle, the terminal creates a rectangular area R₃₁ and a rectangular area R₃₂ by using L₃₁ as one side, and each of a line segment L₃₁ and a line segment L₃₂ parallel to and having a same distance to L₃ as another side. A color of the area R₃₂ is brown, a color of the area R₃₂ is green, and similarly, the foregoing processing may be performed on the edge line segment according to the method for displaying an edge of a rectangular frame provided in the foregoing embodiment. For details, refer to a processing manner on the upper edge line segment L₁ in the target quadrilateral, and details are not described again.

A list of vectors of brown, green, and purple in the RGB color space and vectors of brown, green, and purple in the HSB color space is shown in Table 3.

TABLE 3 R₃₁ (brown) R₃₂ (green) L₃ (purple) (R, G, B) (115, 49, 17) (18, 84, 23) (76, 34, 227) (H, S, B) (20, 0.85, 0.45) (125, 0.79, 0.33) (253, 0.85, 0.89)

Similarly, as shown in FIG. 10, it is assumed that L₄ is a right edge line segment in the target quadrilateral corresponding to the target rectangle, the terminal creates a rectangular area R₄₁ and a rectangular area R₄₂ by using L₄₁ as one side, and each of a line segment L₄₁ and a line segment L₄₂ parallel to and having a same distance to L₄ as another side. A color of the area R₄₁ is brown, a color of the area R₄₂ is green, and similarly, the foregoing processing may be performed on the edge line segment according to the method for displaying an edge of a rectangular frame provided in the foregoing embodiment. For details, refer to a processing manner on the upper edge line segment L₁ in the target quadrilateral, and details are not described again.

A list of vectors of brown, blue, and purple in the RGB color space and vectors of brown, blue, and purple in the HSB color space is shown in Table 4.

TABLE 4 R₄₁ (brown) R₄₂ (blue) L₄ (purple) (R, G, B) (115, 49, 17) (40, 52, 212) (212, 32, 188) (H, S, B) (20, 0.85, 0.45) (236, 0.81, 0.83) (308, 0.85, 0.83)

After respectively determining the vectors of the line segment L₁, the line segment L₂, the line segment L₃, and the line segment L₄ in the RGB color space, the terminal may display, based on the corresponding vectors of the line segment L₁, the line segment L₂, the line segment L₃, and the line segment L₄ in the RGB color space, colors of the line segment L₁, the line segment L₂, the line segment L₃, and the line segment L₄ that are respectively dark blue in Table 1, light blue in Table 2, purple in Table 3, and purple in Table 4.

Optionally, the terminal may select, according to a particular rule, a color of one of the line segments as a color of four sides of the target quadrilateral, to display the four sides of the target quadrilateral. For example, it is considered that a smaller Δh indicates closer colors of areas at two sides, and therefore, a border having higher contrast is required for distinguishing. Therefore, the rule may be that: the terminal calculates, based on the formula (15) and the value of the H channel in the vector of each edge line segment in the target quadrilateral in the HSB color space, the Δh value corresponding to each edge line segment in the target quadrilateral; and the terminal displays each edge line segment in the target quadrilateral based on the vector that is of the edge line segment corresponding to the smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space.

For example, following the foregoing example, after respectively determining the vectors of the line segment L₁, the line segment L₂, the line segment L₃, and the line segment L₄ in the RGB color space, the terminal may respectively calculate, based on the formula (15) and the values of the H channels in Table 1 to Table 4, the Δh values corresponding to the four line segments, as shown in Table 5.

TABLE 5 L₁ L₂ L₃ L₄ Δh 36 4 105 216

Further, the terminal may display, based on that the vector V₀ that is of the line segment L₂ corresponding to the smallest value Δh₂=4 in Δh₁, Δh₂, Δh₃, and Δh₄ and that is in the RGB color space=(7, 154, 217), the colors of the line segment L₁, the line segment L₂, the line segment L₃, and the line segment L₄ that are all light blue corresponding to the vector V₀=(7, 154, 217).

Optionally, in this embodiment of the present invention, after the H channels in the vectors of all the line segments in the HSB color space are calculated, first, the Δh values corresponding to the four line segments are calculated, the line segment corresponding to the smallest value in Δh₁, Δh₂, Δh₃, and Δh₄ is selected, and values of an S channel and a B channel in the vector of the line segment in the HSB color space are calculated; then, the vector V₀ of the line segment in the RGB color space is calculated based on the vector of the line segment in the HSB color space; and finally, the color of the line segment is used as the color of the four edges to display the target quadrilateral. For a specific calculation manner, refer to the processing manner in the foregoing embodiment, and details are not described again.

It may be learned from the foregoing two examples that, based on the method for displaying an edge of a rectangular frame provided in this embodiment of the present invention, when the terminal performs a preview during photographing or corrects a rectangular image in a captured picture, if colors of areas at two sides of a border are both warm colors or cool colors, the terminal can adaptively determine a border color, and generate a border color having better contrast with the colors of the areas at the two sides of the border, thereby improving the contrast between the border color and the colors of the areas at the two sides of the border, and improving user experience.

In the embodiments of the present invention, functional modules of the terminal may be divided based on the foregoing examples in the method, for example, the functional modules may be divided for various corresponding functions, or two or more modules may be integrated in a processing module. The integrated module may be implemented in a form of hardware, or may be implemented in a form of a software functional module. It should be noted that, in the embodiments of the present invention, the module division is an example and is merely logical function division and may be other division in actual implementation.

When an integrated unit is used, FIG. 11 is a possible schematic structural diagram of a terminal according to an embodiment of the present invention. The terminal 1100 includes a camera module 1101, a processing module 1102, and a display module 1103. The camera module 101 is configured to obtain an RGB image of a captured target rectangle. The processing module 1102 is configured to process a border of the rectangle. The display module 1103 is configured to display a target border color of the target rectangle. For example, the camera module 1101 is configured to support performing S601 in FIG. 6, S601 in FIG. 8, and S601 in FIG. 9 by the terminal. The display module 1103 is configured to support performing S604 in FIG. 6, S604 in FIG. 8, and S604 in FIG. 9 by the terminal. The processing module 1102 is configured to support performing, by the terminal, all steps of S602 and S603 in FIG. 6, FIG. 8, and FIG. 9, and/or other processes applied to technologies described in this specification.

The camera module 1101 may be a camera such as a front-facing camera or a rear-facing camera.

The processing module 1102 may be a processor or a controller, for example, may be a central processing unit (English: central processing unit, CPU for short), a general-purpose processor, a digital signal processor (English: digital signal processor, DSP for short), an application-specific integrated circuit (English: application-specific integrated circuit, ASIC for short), a field programmable gate array (English: field programmable gate array, FPGA for short), or another programmable logical device, a transistor logical device, a hardware component, or any combination thereof. The controller/processor can implement or perform various examples of logic blocks, modules, and circuits described with reference to content disclosed in the present invention. The processor may also be a combination that implements a calculation function, for example, including one microprocessor or a combination of a plurality of microprocessors, or a combination of a DSP and a microprocessor.

When the camera module 1101 is a camera, the processing module 1102 is a processor, and the display module 1103 is a display screen, the terminal in this embodiment of the present invention may be the terminal shown in FIG. 5.

Method or algorithm steps described with reference to the content disclosed in the present invention may be implemented by hardware, or may be implemented by a processor by executing a software instruction. The software instruction may be formed by a corresponding software module. The software module may be stored in a random access memory (English: random access memory, RAM for short), a flash memory, a read-only memory (English: read only memory, ROM for short), an erasable programmable read-only memory (English: erasable programmable ROM, EPROM for short), an electrically erasable programmable read-only memory (English: electrically EPROM, EEPROM for short), a register, a hard disk, a removable hard disk, a compact disc read-only memory (English: compact disc ROM, CD-ROM for short), or a storage medium in any other form well-known in the art. For example, a storage medium is coupled to the processor, so that the processor can read information from the storage medium or write information into the storage medium. Certainly, the storage medium may be a component of the processor. The processor and the memory medium may be located in the terminal.

A person skilled in the art should be aware that in the foregoing one or more examples, functions described in the present invention may be implemented by hardware, software, firmware, or any combination thereof. When the present invention is implemented by software, the foregoing functions may be stored in a computer-readable medium or transmitted as one or more instructions or code in the computer-readable medium. The computer-readable medium includes a computer storage medium and a communications medium, where the communications medium includes any medium that enables a computer program to be transmitted from one place to another. The storage medium may be any available medium accessible to a general-purpose or dedicated computer.

The objectives, technical solutions, and benefits of the present invention are further described in detail in the foregoing specific embodiments. It should be understood that the foregoing descriptions are merely specific implementations of the present invention, but are not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, or improvement made based on the technical solutions of the present invention shall fall within the protection scope of the present invention. 

What is claimed is:
 1. A method for displaying an edge of a rectangular frame, wherein the method comprises: obtaining, by a terminal, a red green blue RGB image of a captured target rectangle; detecting, by the terminal, an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; processing, by the terminal, each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating, by the terminal, a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining, by the terminal, a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂; converting, by the terminal, the vector V₁ to a vector a₁=(h₁,s₁,b₁) of a hue saturation brightness HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining, by the terminal, a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting, by the terminal, the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the terminal processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.
 2. The method according to claim 1, wherein the determining, by the terminal, a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂ comprises: determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂; determining, by the terminal, s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on S₁ and s₂; and determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.
 3. The method according to claim 2, wherein the determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂ comprises: determining, by the terminal, a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂, and the following first preset formula; and determining, by the terminal, h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and the following second preset formula, wherein the first preset formula comprises: $\left\{ {\begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix},} \right.$ wherein h_(1c) indicates the complementary color of h₁, and h_(2c) indicates the complementary color of h₂; and the second preset formula comprises: $h_{0} = \left\{ {\begin{matrix} \frac{h_{1c} + h_{2c}}{2} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} < 360} \\ {\frac{h_{1c} + h_{2c}}{2} - 360} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} \geq 360} \end{matrix}.} \right.$
 4. The method according to claim 2, wherein the determining, by the terminal, s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂ comprises: determining, by the terminal, the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.
 5. The method according to claim 2, wherein the determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂ comprises: determining, by the terminal, whether a difference between b₁ and b₂ is greater than a first preset value T₁, wherein T₁∈[0,1]; and if the difference between b₁ and b₂ is greater than the first preset value, determining, by the terminal, the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space; or if the difference between b₁ and b₂ is not greater than the first preset value, determining, by the terminal, b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and the following third preset formula, wherein the third preset formula comprises: $b_{0} = \left\{ {\begin{matrix} {\frac{b_{1} + b_{2}}{2} + T_{2}} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} > 1} \end{matrix},{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq {\frac{T_{1}}{2}.}}}} \right.$
 6. The method according to claim 1, wherein the determining, by the terminal, a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ comprises: separately determining, by the terminal, V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4: S1: determining, by the terminal, a histogram H_(ki) of an i channel in an RGB color space of a rectangular area R_(k), wherein k=1 or 2, and i=r, or g, or b; S2: obtaining, by the terminal, a grayscale G_(ki) having a largest probability in the histogram H_(ki); S3: determining, by the terminal by using G_(ki) as a center with reference to the following fourth preset formula, a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki), wherein T_(ki) is a preset rational number having a value range of 0 to 1; and S4: determining, by the terminal, V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and the following fifth preset formula; and determining, by the terminal, the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on V_(1r), V_(1g), and V_(1b), and determining, by the terminal, the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on V_(2r), V_(2g), and V_(2b), wherein the fourth preset formula comprises: $S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}$ x ∈ [g_(k 1), g_(k 2)], wherein  G_(ki) − g_(k 1) = g_(k 2) − G_(ki); and the fifth preset formula comprises: ${V_{k\; i} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{k\; i}^{\prime}(x)}\mspace{14mu} x}} \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}},{{{where}\mspace{14mu}{H_{ki}^{\prime}(x)}} = \frac{H_{ki}(x)}{S_{ki}}},$ wherein H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.
 7. The method according to claim 1, wherein the converting, by the terminal, the vector V₁ to a vector a₁=(h₁,s₁,b₁) of an HSB color space, and converting, by the terminal, the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space comprises: converting, by the terminal, the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and converting the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on the following sixth preset formula, seventh preset formula, and eighth preset formula, wherein the sixth preset formula comprises: b_(k)=max(V_(kr),V_(kg),V_(kb)); the seventh preset formula comprises: $s_{k} = \left\{ {\begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix};} \right.$ and the eighth preset formula comprises: $h_{k} = \left\{ {\begin{matrix} {60{\left( {V_{kg} - V_{kb}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60{\left( {V_{kr} - V_{kg}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix},} \right.$ wherein k=1 or 2, max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.
 8. The method according to claim 1, wherein the converting, by the terminal, the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space comprises: converting, by the terminal, the vector a₀ to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following ninth preset formula to fourteenth preset formula, wherein the ninth preset formula comprises: ${h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6}},$ wherein $\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6$ indicates obtaining a remainder of division of a largest integer less than $\frac{h_{0}}{60}$ by 6; the tenth preset formula comprises: ${f = {\frac{h_{0}}{60} - h_{m}}};$ the eleventh preset formula comprises: p=b₀*(1−s₀); the twelfth preset formula comprises: q=b₀*(1−ƒ*s₀); the thirteenth preset formula comprises: t=b*(1−(1−ƒ)*s₀); and the fourteenth preset formula comprises: $\left( {V_{0r},V_{0g},V_{0b}} \right) = \left\{ {\begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix}.} \right.$
 9. The method according to claim 1, wherein the displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space comprises: displaying, by the terminal, each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.
 10. The method according to claim 1, wherein the displaying, by the terminal, the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space comprises: calculating, by the terminal based on a fifteenth preset formula and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and displaying, by the terminal, each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space, wherein the fifteenth preset formula comprises: Δh=|h₁−h₂|.
 11. A terminal for displaying an edge of a rectangle, wherein the terminal comprises a camera, a processor, and a display screen, wherein the camera is configured to obtain a red green blue RGB image of a captured target rectangle; the processor is configured to detect an edge of the RGB image, to obtain a target quadrilateral corresponding to the target rectangle; the processor is further configured to process each edge line segment in the target quadrilateral based on the following operations on a first line segment: separately creating a rectangular area R₁ and a rectangular area R₂ by using the first line segment as one side; determining a vector V₁=(V_(1r),V_(1g),V_(1b)) of an RGB color space of the rectangular area R₁ and a vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂; converting the vector V₁ to a vector a₁=(h₁,s₁,b₁) of a hue saturation brightness HSB color space, and converting the vector V₂ to a vector a₂=(h₂,s₂,b₂) of the HSB color space; determining a vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the vector a₁ and the vector a₂; and converting the vector a₀ to a vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space; and after the processor processes each edge line segment in the target quadrilateral based on the foregoing operations on the first line segment, the display screen displays the target quadrilateral based on a vector of each edge line segment in the target quadrilateral in the RGB color space.
 12. The terminal according to claim 11, wherein the processor is specifically configured to: determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on h₁ and h₂; determine s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on s₁ and s₂; and determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁ and b₂.
 13. The terminal according to claim 12, wherein the processor is specifically configured to: determine a complementary color of h₁ and a complementary color of h₂ based on h₁, h₂ and the following first preset formula; and determine h₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on the complementary color of h₁, the complementary color of h₂, and the following second preset formula, wherein the first preset formula comprises: $\left\{ {\begin{matrix} {h_{1c} = {h_{1} + 180}} \\ {h_{2c} = {h_{2} + 180}} \end{matrix},} \right.$ wherein h_(1c) indicates the complementary color of h₁, and h_(2c) indicates the complementary color of h₂; and the second preset formula comprises: $h_{0} = \left\{ {\begin{matrix} \frac{h_{1c} + h_{2c}}{2} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} < 360} \\ {\frac{h_{1c} + h_{2c}}{2} - 360} & {{{when}\mspace{14mu}\frac{h_{1c} + h_{2c}}{2}} \geq 360} \end{matrix}.} \right.$
 14. The terminal according to claim 12, wherein the processor is specifically configured to: determine the larger one of s₁ and s₂ as s₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space.
 15. The terminal according to claim 12, wherein the processor is specifically configured to: determine whether a difference between b₁ and b₂ is greater than a first preset value T₁, wherein T₁∈[0,1]; and if the difference between b₁ and b₂ is greater than the first preset value, determine the larger one of b₁ and b₂ as b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space; or if the difference between b₁ and b₂ is not greater than the first preset value, determine b₀ in the vector a₀=(h₀,s₀,b₀) of the first line segment in the HSB color space based on b₁, b₂, and the following third preset formula, wherein the third preset formula comprises: $b_{0} = \left\{ {\begin{matrix} {\frac{b_{1} + b_{2}}{2} + T_{2}} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} \leq 1} \\ {\frac{b_{1} + b_{2}}{2} + T_{2} - 1.0} & {{{{when}\mspace{14mu}\frac{b_{1} + b_{2}}{2}} + T_{2}} > 1} \end{matrix};{T_{2} \in {{\left\lbrack {0,1} \right\rbrack\mspace{14mu}{and}\mspace{14mu} T_{2}} \geq {\frac{T_{1}}{2}.}}}} \right.$
 16. The terminal according to claim 11, wherein the processor is specifically configured to: separately determine V_(1r), V_(1g), and V_(1b) in the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁, and V_(2r), V_(2g), and V_(2b) in the RGB vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ in the following manners S1 to S4: S1: determining a histogram H_(ki) of an i channel in an RGB color space of a rectangular area R_(k), wherein k=1 or 2, and i=r, or g, or b; S2: obtaining a grayscale G_(ki) having a largest probability in the histogram H_(ki); S3: determining, by using G_(ki) as a center with reference to the following fourth preset formula, a sum S_(ki) of probabilities of all grayscales between two grayscales having a same distance to G_(ki), until S_(ki)>T_(ki), wherein T_(ki) is a preset rational number having a value range of 0 to 1; and S4: determining V_(ki) in an RGB vector V_(k) of the RGB color space of the rectangular area R_(k) based on S_(ki) and the following fifth preset formula; and determine the vector V₁=(V_(1r),V_(1g),V_(1b)) of the RGB color space of the rectangular area R₁ based on V_(1r), V_(1g), and V_(1b), and determine the vector V₂=(V_(2r),V_(2g),V_(2b)) of the RGB color space of the rectangular area R₂ based on V_(2r), V_(2g), and V_(2b), wherein the fourth preset formula comprises: $S_{ki} = {\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{H_{ki}(x)}}$ x ∈ [g_(k 1), g_(k 2)], wherein  G_(ki) − g_(k 1) = g_(k 2) − G_(ki); and the fifth preset formula comprises: ${V_{k\; i} = {{\sum\limits_{g_{k\; 1}}^{g_{k\; 2}}{x*{H_{k\; i}^{\prime}(x)}\mspace{14mu} x}} \in \left\lbrack {g_{k\; 1},g_{k\; 2}} \right\rbrack}},{{{where}\mspace{14mu}{H_{ki}^{\prime}(x)}} = \frac{H_{ki}(x)}{S_{ki}}},$ wherein H_(ki)(x) indicates a probability value of a grayscale having a grayscale of x in an i channel in a grayscale histogram of a k^(th) area, H′_(ki)(x) indicates normalization for H_(ki)(x), and Σ indicates obtaining a sum of all values in a range.
 17. The terminal according to claim 11, wherein the processor is specifically configured to: convert the vector V₁ to the vector a₁=(h₁,s₁,b₁) of the HSB color space, and convert the vector V₂ to the vector a₂=(h₂,s₂,b₂) of the HSB color space based on the following sixth preset formula, seventh preset formula, and eighth preset formula, wherein the sixth preset formula comprises: b_(k)=max(V_(kr),V_(kg),V_(kb)); the seventh preset formula comprises: $s_{k} = \left\{ {\begin{matrix} \frac{b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}}{b_{k}} & {{{when}\mspace{14mu} b_{k}} \neq 0} \\ 0 & {{{when}\mspace{14mu} b_{k}} = 0} \end{matrix};} \right.$ and the eighth preset formula comprises: $h_{k} = \left\{ {\begin{matrix} {60{\left( {V_{kg} - V_{kb}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}} & {{{when}\mspace{14mu} b_{k}} = V_{kr}} \\ {120 + {60{\left( {V_{kb} - V_{kr}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kg}} \\ {240 + {60{\left( {V_{kr} - V_{kg}} \right)/\left( {b_{k} - {\min\left( {V_{kr},V_{kg},V_{kb}} \right)}} \right)}}} & {{{when}\mspace{14mu} b_{k}} = V_{kb}} \end{matrix},} \right.$ wherein k=1 or 2, max indicates obtaining a maximum value for all variables, and min indicates obtaining a minimum value for all the variables.
 18. The terminal according to claim 11, wherein the processor is specifically configured to: convert the vector a₀ to the vector V₀=(V_(0r),V_(0g),V_(0b)) of the RGB color space based on the following ninth preset formula to fourteenth preset formula, wherein the ninth preset formula comprises: ${h_{m} = {\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6}},$ wherein $\left\lfloor \frac{h_{0}}{60} \right\rfloor{mod}\; 6$ indicates obtaining a remainder of division of a largest integer less than $\frac{h_{0}}{60}$ by 6; the tenth preset formula comprises: ${f = {\frac{h_{0}}{60} - h_{m}}};$ the eleventh preset formula comprises: p=b₀*(1−s₀); the twelfth preset formula comprises: q=b₀*(1−ƒ*s₀); the thirteenth preset formula comprises: t=b₀*(1−(1−ƒ)*s₀); and the fourteenth preset formula comprises: $\left( {V_{0r},V_{0g},V_{0b}} \right) = \left\{ {\begin{matrix} {\left( {b_{0},t,p} \right),{h_{m} = 0}} \\ {\left( {q,b_{0},p} \right),{h_{m} = 1}} \\ {\left( {p,b_{0},t} \right),{h_{m} = 2}} \\ {\left( {p,q,b_{0}} \right),{h_{m} = 3}} \\ {\left( {t,p,b_{0}} \right),{h_{m} = 4}} \\ {\left( {b_{0},p,q} \right),{h_{m} = 5}} \end{matrix}.} \right.$
 19. The terminal according to claim 11, wherein the display screen is specifically configured to: display each edge line segment in the target quadrilateral based on the vector of each edge line segment in the target quadrilateral in the RGB color space.
 20. The terminal according to claim 11, wherein the display screen is specifically configured to: calculate, by using the processor based on a fifteenth preset formula and a value of an H channel in a vector of each edge line segment in the target quadrilateral in the HSB color space, a Δh value corresponding to each edge line segment in the target quadrilateral; and display each edge line segment in the target quadrilateral based on a vector that is of an edge line segment corresponding to a smallest Δh value in the four Δh values corresponding to the four edge line segments in the target quadrilateral and that is in the RGB color space, wherein the fifteenth preset formula comprises: Δh=|h₁−h₂|. 